草庐IT

OpenSSL 证书

全部标签

java - 使用 AndroidKeyStoreProvider 生成证书签名请求的最佳方法是什么?

我读了thisarticle.它说明了如何生成KeyPair,但是它没有指定如何根据生成的key生成证书签名请求。根据我的研究,要用Java生成CSR,来自网络的示例通常使用包sun.*或BouncyCaSTLe库。似乎没有办法使用标准java.securityAPI生成CSR。我读了this它似乎在说同样的话。我别无选择,只能使用BouncyCaSTLe吗?很难想象Android开发者不会考虑这种用法。顺便说一下,文章中还提到:GeneratinganewPrivateKeyrequiresthatyoualsospecifytheinitialX.509attributesthat

android - 带有证书固定的 OkHttp

我的Android项目(OkHttp3.3.1)目前使用我的HTTPS网络服务(我的PC、IIS网络服务器、Asp.NetWebAPI、自签名证书)辅助方法:privateSSLSocketFactorygetSSLSocketFactory()throwsCertificateException,KeyStoreException,IOException,NoSuchAlgorithmException,KeyManagementException{CertificateFactorycf=CertificateFactory.getInstance("X.509");InputSt

android - 现在 SSLSocketFactory 在 Android 上已被弃用,处理客户端证书身份验证的最佳方法是什么?

我正在开发一个需要客户端证书身份验证(使用PKCS12文件)的Android应用程序。在弃用所有apache.http.*之后,我们开始了一项相当大的网络层重构工作,我们决定使用OkHttp作为替代品,到目前为止我喜欢非常喜欢。但是,我还没有找到任何其他方法来处理客户端证书身份验证而不使用SSLSocketFactory、OkHttp或其他任何与此相关的方法。那么在这种特殊情况下最好的行动方案是什么?OkHttp是否有另一种方法来处理这种身份验证? 最佳答案 如果您使用https,则必须使用有效的证书。在您的开发阶段,您必须信任证书

Android - 以编程方式从 keystore 检索证书(手动安装)

在我的android设备上,我手动安装了一个证书,目的是允许我访问特定网站。当我查看“安全性——用户证书”时,我可以看到我的证书。我的网站显示在一个webview中,所以我必须使用下面的代码@OverridepublicvoidonReceivedClientCertRequest(WebViewview,finalClientCertRequestrequest){if(mCertificates==null||mPrivateKey==null){loadCertificateAndPrivateKey();}request.proceed(mPrivateKey,mCertifi

android - 如何在 Android 上使用 .p12 证书?

如何在Android上使用.p12证书?我尝试在Menu/Settings/Location和安全性中添加它。当我执行此操作时,证书从SD卡中消失,但当我访问需要.p12证书的网站时,我只是遇到连接错误。证书、密码、URL都没有问题。我对它们进行了三次检查。我不是唯一遇到这个问题的人,对吧?我的iPad/iPhone同事可以轻松使用它,但在Android上却很痛苦。他们只需双击.p12文件,提供证书密码,然后就可以设置了。为什么在Android上不是这样的? 最佳答案 确保将证书复制到SD卡的根目录。点击设置->位置&安全/安全->

c++ openssl实现https

本文是在学习https的时候,参照网上诸多资料,在实际操作过程中还是遇到不少问题,力求详细的阐述在linux环境下,c++使用openssl对http报文加密成为https的过程,并使用tcpdump抓取tcp报文展示http和https在传输过程中的差别。本文适合对c++openssl一点了解都没有,服务器端编程,只需要把ssl添加上tcp连接上。参照文章:C++通过openssl搭建https服务器OpenSSL生成CA自签名根证书和颁发证书tcpdump抓取TCP/IP数据包分析openssl基本原理+生成证书+使用实例总述:https相当于在http连接上添加上一层ssl验证。如图所示

java - 通过签名比较 SSL 证书 : is it enough?

我正在处理的系统架构需要比较两个SSL/TLS(通常是X.509)证书。也就是说,我需要验证两个证书是否相同。我不关心它们是过期的还是自签名的,我只是想确保它们没有以任何方式被更改。执行此类操作的最正确方法是什么?比较这些证书的两个签名(两个字节[])是否足够,或者此操作是否容易受到我目前尚未考虑过的攻击? 最佳答案 我认为比较这两个签名是不够的,除非您的代码直接从某个实例获取证书,以确保签名也已根据证书本身检查。所以在很多情况下,我会说:不。我认为最灵活、正确的方法是分别检查两个证书(正文与签名)的完整性,然后直接比较证书中您要求

java - Android 上是否有任何系统证书存储?

在桌面Java中,存在一个sun.security.mscapi.SunMSCAPI加密提供程序,我们可以将其与KeyStore一起使用以访问Windows系统证书存储。我知道Android上有类似的商店,但我找不到管理这些商店的方法(列出、添加、删除证书)。我发现的是:1)使用KeyChain,但这需要通过Activity与用户进行额外的交互;2)像在桌面上一样使用KeyStore并直接加载存储文件,但这些文件的路径在所有设备上都不是固定的。还有其他我不知道的方法吗? 最佳答案 KeyChain是一个相对较新的补充。它仅适用于AP

Android - 使用 HTTPS 和 SSL 的安全性 - 未知证书颁发机构 - NativeCrypto 异常

接着这个:https://developer.android.com/intl/es/training/articles/security-ssl.htmlpart:Unknowncertificateauthority-华盛顿大学的例子。现在我可以访问服务器并与之通信了。我从服务器得到了预期的响应。但是,Android日志中有一些错误:E/NativeCrypto﹕ssl=0x61ede338cert_verify_callbackx509_store_ctx=0x618358c0arg=0x0E/NativeCrypto﹕ssl=0x61ede338cert_verify_call

运行时下载的自签名证书的 Android N 网络安全配置

在用于SSL证书的AndroidN中,我必须添加此代码-(根据给定的androiddeveloperlink)...xml文件夹中的文件network_security_config.xml-example.com这对于一个静态域来说工作正常,但我的问题是-服务器域在我的应用程序中每次都不会相同。第二个问题是我在运行时从我的服务器域下载SSL证书,所以我怎么能每次都更新原始文件夹中的证书文件,因为我们知道我们不能在运行时在原始文件夹中写入文件。所以对于动态流程,我如何使用不同的不同证书连接到我在AndroidN中的服务器。Edit1:如果我没有使用这个配置文件代码,我的应用程序通信就会